/**
 * 
 */
package fr.fermeManager.application.controllers;

import java.util.List;

import org.jdesktop.observablecollections.ObservableCollections;

import fr.fermeManager.application.utils.AppContext;
import fr.fermeManager.application.utils.Constantes;
import fr.fermeManager.application.views.ViewFermeSelection;
import fr.fermeManager.library.model.beans.Ferme;
import fr.fermeManager.library.services.FermeService;
import fr.fermeManager.library.services.FermeServiceImpl;

/**
 * @author Mo
 * 
 */
public class ControllerFermeSelection extends BaseController {
	
	FermeService serviceFerme = new FermeServiceImpl();
	
	public ControllerFermeSelection() {
		
		// Affectation de la nouvelle vue
		AppContext.setBasePanel(new ViewFermeSelection(this),false);
	}

	public void selectionnerFerme(int idSelecParam) {
		
		@SuppressWarnings("unchecked")
		List<Ferme> fermesRecuperees = (List<Ferme>) AppContext.getSession().get(Constantes.LISTE_FERMES);
		
		Ferme fermeSelectionnee = null;
		
		for (Ferme fermeTmp : fermesRecuperees) {
			if(fermeTmp.getId() == idSelecParam){
				fermeSelectionnee = fermeTmp;
			}
		}
		
		AppContext.getSession().set(Constantes.CURRENT_FERME, fermeSelectionnee);
		
		// Affectation du nouveau controller
		AppContext.setCurrentController(new ControllerGestionTransactions());
	}

	public void afficherUserSelection() {
		
		AppContext.getSession().removeAll();
		
		// Affectation du nouveau controller
		AppContext.setCurrentController(new ControllerUserSelection());
		
	}

	@Override
	public void loadData() {
		
		List<Ferme> fermesRecuperees = serviceFerme.getAllFermes();
		
		AppContext.getSession().set(Constantes.LISTE_FERMES, ObservableCollections.observableList(fermesRecuperees));
		
		ViewFermeSelection currentView = (ViewFermeSelection) AppContext.getBasePanel();
		
		currentView.setListeFermes(ObservableCollections.observableList(fermesRecuperees));
		
	}

}
